import Vue from 'vue'
import Apis from './apis'
// import tg_icon from '../assets/tg_icon.png'
const tg_icon = 'https://scenic.tuliyou.com/static/images/classify_icon_coupon.png'

const voice_icon = 'https://scenic.tuliyou.com/static/images/default_page_images/scenic/voice_icon.png'

let infoWindow = {}
// let popupClickNum = 0;
export default {
    registerJSSDK(sid) {
        return new Promise((resolve, reject) => {
            Vue.axios.post(Apis.registerSDK, { sid: 1, url: location.href }).then(res => {
            // Vue.axios.post(Apis.registerSDK, { sid: -3, scenic_id: -3, url: 'http://scenic.test.tuliyou.com/' }).then(res => {
                // alert(JSON.stringify(res))
                wx.config({
                    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                    appId: res.data.appId, // 必填，公众号的唯一标识
                    timestamp: res.data.timestamp, // 必填，生成签名的时间戳
                    nonceStr: res.data.nonceStr, // 必填，生成签名的随机串
                    signature: res.data.signature, // 必填，签名
                    jsApiList: ['getLocation', 'openLocation'] // 必填，需要使用的JS接口列表
                })
                wx.ready(() => {
                    resolve()
                })
                wx.error(() => {
                    reject('微信JSSDK注册失败！')
                })
            })
        })
    },

    /**
     * 百度坐标转gcj02（传入经度、纬度）
     * @param {Float} bd_lng
     * @param {Float} bd_lat
     */
    bd_decrypt(bd_lng, bd_lat) {
        const X_PI = (Math.PI * 3000.0) / 180.0
        const x = bd_lng - 0.0065
        const y = bd_lat - 0.006
        const z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * X_PI)
        const theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * X_PI)
        const gg_lng = z * Math.cos(theta)
        const gg_lat = z * Math.sin(theta)
        return { lng: gg_lng, lat: gg_lat }
    },
    /**
     * gcj02转百度坐标（传入经度、纬度）
     * @param {Float} gg_lng
     * @param {Float} gg_lat
     */
    bd_encrypt(gg_lng, gg_lat) {
        const X_PI = (Math.PI * 3000.0) / 180.0
        const x = gg_lng,
            y = gg_lat
        const z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * X_PI)
        const theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * X_PI)
        const bd_lng = z * Math.cos(theta) + 0.0065
        const bd_lat = z * Math.sin(theta) + 0.006
        return { lng: bd_lng, lat: bd_lat }
    },
    /**
     * 清楚地图上的点 线 信息窗口
     * @param {*} obj
     */
    cleanMapOverlays(obj) {
        // 获取现有的marker点
        const oldMarkers = obj.$store.state.mapMarkers
        // 清除旧的marker点
        obj.map.remove(oldMarkers)
        // 清楚旧的聚合点
        const mco = obj.$store.state.markerClustererObj
        mco.clearMarkers && mco.clearMarkers()
        // 清除之前的线路
        const lines = obj.map.getAllOverlays('polyline')
        obj.map.remove(lines)
        // 清除地图上的infowindow
        obj.map.clearInfoWindow()

        return new Promise(resolve => {
            resolve()
        })
    },
    /**
     * 计算两点距离，获取距离最近的数据索引
     * @param {LngLatObject} dataList
     * @param {LngLatObject} userLocation
     * @return {Number} index
     */
    calculatePointDistance(dataList, userLocation) {
        console.log('dataList', dataList == '', dataList)
        if (dataList == '') {
            return ''
        }
        // 有多个图层选择距离最近的那个图层展示
        let discArr = []
        dataList.forEach(el => {
            // 计算距离
            const centerPoint = el.p_c.split(',')
            const pointOne = new AMap.LngLat(userLocation[0], userLocation[1])
            const pointTwo = new AMap.LngLat(centerPoint[0], centerPoint[1])
            discArr.push(pointOne.distance(pointTwo))
        })
        console.log('discArr', discArr)
        const minNum = Math.min.apply(Math, discArr)
        console.log('min:', minNum)
        const minNumIx = discArr.indexOf(minNum)
        console.log('minNumIx:', minNumIx)
        return minNumIx
    },
   

 
}
